import * as config from './Config';
import "es6-promise";
const Tool = {};

// 对Date的扩展，将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符，
// 年(y)可以用 1-4 个占位符，毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
// 例子：
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
// (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18
Tool.DataFormat = function(str,fmt) {
    let date = new Date(str*1000);
    var o = {
        "M+" : date.getMonth()+1, //月份
        "d+" : date.getDate(), //日
        "h+" : date.getHours(), //小时
        "m+" : date.getMinutes(), //分
        "s+" : date.getSeconds(), //秒
        "q+" : Math.floor((date.getMonth()+3)/3), //季度
        "S" : date.getMilliseconds() //毫秒
    };
    if(/(y+)/.test(fmt)) {
        fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));
    }
    for(var k in o) {
        if(new RegExp("("+ k +")").test(fmt)){
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
        }
    }
    return fmt;
}

/**
 * 格式化时间
 *
 * @param {any} t
 * @returns
 */
Tool.formatDate = function (str) {
    var date = new Date(str);
    var time = new Date().getTime() - date.getTime(); //现在的时间-传入的时间 = 相差的时间（单位 = 毫秒）
    if (time < 0) {
        return '';
    } else if (time / 1000 < 60) {
        return '刚刚';
    } else if ((time / 60000) < 60) {
        return parseInt((time / 60000),0) + '分钟前';
    } else if ((time / 3600000) < 24) {
        return parseInt(time / 3600000,0) + '小时前';
    } else if ((time / 86400000) < 31) {
        return parseInt(time / 86400000,0) + '天前';
    } else if ((time / 2592000000) < 12) {
        return parseInt(time / 2592000000,0) + '月前';
    } else {
        return parseInt(time / 31536000000,0) + '年前';
    }
}

Tool.formatDateTime = function(str,type){
    if(type === 1){
        return Tool.DataFormat(str,"yyyy-MM-dd hh:mm:ss");
    }else{
        return Tool.DataFormat(str,"yyyy-MM-dd");
    }
}

/**
 * 本地数据存储或读取
 *
 * @param {any} key
 * @param {any} value
 * @param company string 公司名称
 * @param fieldList string 选择的领域
 * @param user  用户信息
 * @param typeFlag  登录true false
 * @returns
 */
Tool.localItem = function (key, value) {
    if (arguments.length === 1) {
        return localStorage.getItem(key);
    } else {
        return localStorage.setItem(key, value);
    }
}


/**
 * 删除本地数据
 *
 * @param {any} key
 * @returns
 */
Tool.removeLocalItem = function (key) {
    if (key) {
        return localStorage.removeItem(key);
    }
    return localStorage.removeItem();
}

/*
 * 获取cookie
 * */
Tool.getCookie = function (cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) === ' ') c = c.substring(1);
        if (c.indexOf(name) !== -1) return c.substring(name.length, c.length);
    }
    return "";
}
/*
 * 存储cookie
 * */
Tool.setCookie = function (name,value) {
    var Days = 30;
    var d = new Date();
    d.setTime(d.getTime() + (Days*24*60*60*1000));
    var expires = "expires="+d.toGMTString();
    document.cookie = name + "=" + value + "; " + expires+";path=/;";
}
/*
 * 删除cookie xinghan.scientistin.com
 * */
Tool.delCookie = function (name) {
    document.cookie = name + "=;expires=" + (new Date(0)).toGMTString()+";path=/;";
    //Tool.setCookie("tk","");
}
Tool.setSession = function(key,data){
    try {
        sessionStorage.setItem(key,JSON.stringify(data))
    }catch(err){
        sessionStorage.setItem(key,data)
    }
}

Tool.getSession = function(key){
    let value=null;
    try {
        value=JSON.parse(sessionStorage.getItem(key))
    }catch(err){
        value=sessionStorage.getItem(key)
    }
    return value;
}

Tool.delSession = function(key){
    if (Array.isArray(key)){
        for (var i=0,l=key.length;i<l;i++){
            sessionStorage.removeItem(key[i]);
        }
    }else {
        sessionStorage.removeItem(key);
    }
}

export { Tool , config }

export const PHONE_PATTERN = /^1(3|4|5|6|7|8|9)\d{9}$/;//手机验证正则表达式